package com.cgnpc.scp.manager.service;

import com.cgnpc.cud.core.domain.AjaxResult;
import com.cgnpc.scp.common.bean.MyPageResult;
import com.cgnpc.scp.common.pojo.UserInfo;
import com.cgnpc.scp.manager.mybatis.entity.DataDict;

import java.util.List;
import java.util.Locale;

/******************************
 * 用途说明: 数据字典
 * 作者姓名: yblrs
 * 创建时间: 2020/8/16 18:01
 ******************************/
public interface IDataDictService {

    /**********************************
     * 用途说明: 数据字典---保存或修改
     *          保存或修改使用数据库事务，具体实现类上@Transactional(rollbackFor = Exception.class)描述只要发生异常就回滚事务。<br>
     * 参数说明: UserInfo loginUserInfo, Locale reqLocale, List<T> reqEntityList
     * 返回值说明: AjaxResult
     ***********************************/
    <T extends DataDict> AjaxResult saveOrUpdate(UserInfo loginUserInfo, Locale reqLocale, List<T> reqEntityList);

    /**********************************
     * 用途说明: 数据字典---分页查询
     * 参数说明: T reqEntity
     * 返回值说明: MyPageResult
     ***********************************/
    <T extends DataDict> MyPageResult<T> loadByPaging(T reqEntity);

    /**********************************
     * 用途说明: 数据字典---查询指定信息
     * 参数说明: T reqEntity
     * 返回值说明: List
     ***********************************/
    <T extends DataDict> List<T> queryByDictGroupKey(T reqEntity);

    /**********************************
     * 用途说明: 数据字典---查询指定信息
     * 参数说明: List<String> reqDictGroupKeyList
     * 返回值说明: List
     ***********************************/
    <T extends DataDict> List<T> queryByDictGroupKey(List<String> reqDictGroupKeyList);

    /**********************************
     * 用途说明: 数据字典---查询指定信息
     * 参数说明: List<String> reqDictGroupKeyList
     * 返回值说明: List
     ***********************************/
    <T extends DataDict> List<T> queryByDictGroupKey(String reqDictGroupKey);

}
